package cn.net.isir.utils;

import java.util.ArrayList;
import java.util.List;

/**
 * @author liuxubo
 * @filename CompareListsUtils.java
 * @package cn.net.isir.utils
 * @email lxb@isir.net.cn
 * @date 2019/02/26
 * @comment
 * @since 1.8
 */
public class CompareListsUtils {
    /**
     * 对比两个列表，查询出新列表比旧列表修改了哪些
     *
     * @param list1 新列表
     * @param list2 旧列表
     * @return 返回数组，[1]是新增的部分，[2]是去掉的部分
     */
    public static List<String>[] compare(List<String> list1, List<String> list2) {
        return new List[]{compareLists(list1, list2), compareLists(list2, list1)};
    }

    /**
     * 找出第一个列表比第二个列表多出来的数据
     *
     * @param list1 第一个列表
     * @param list2 第二个列表
     * @return 多出来的部分
     */
    private static List<String> compareLists(List<String> list1, List<String> list2) {
        List<String> additions = new ArrayList<>();
        for (String s1 : list1) {
            boolean isNew = true;
            for (String s2 : list2) {
                if (s2.equals(s1)) {
                    isNew = false;
                    break;
                }
            }
            if (isNew) {
                additions.add(s1);
            }
        }
        return additions;
    }
}
